#ifndef __USER_manage_H__
#define __USER_manage_H__
#include "public.h"
#include "matrl.h"
#include "vector.h" //顺序表
#define USER_DATA_FILE "./file_data/user_inf.dat"

#define PROJECT_NUM 5

extern char user_gfind_v[][30];                                                  // 放入选项
extern char user_gscanf_matrl[][15];                                             // 放入选项
extern int (*user_func_array[5])(const void *dast, const void *str, size_t mod); // 函数数组

// 查询函数，mod = 1精确，= 0 模糊
void *user_find_data(vector v, void *data, int (*v_find)(const void *, const void *, size_t mod), size_t mod);
int user_find_dast_ID(const void *dast, const void *str, size_t mod);         // func_array[0]
int user_find_dast_name(const void *dast, const void *str, size_t mod);       // func_array[1]
int user_find_dast_phone(const void *dast, const void *str, size_t mod);      // func_array[2]
int user_find_dast_ID_card(const void *dast, const void *str, size_t mod);    // func_array[3]
int user_find_dast_md5_passwd(const void *dast, const void *str, size_t mod); // func_array[4]

void user_Vector_Upd_switch(void *dast, size_t n);
void user_Vector_Find_Init(void); // 存入函数数组(启动)
void user_show_inf(elem_type *data);
void user_Update_data(vector v);

void user_Vector_Find(vector v); // 针对数据表
void user_Vector_Del(vector v);
void user_Vector_Add(vector v);
void user_Vector_Upd(vector v);

#endif